package manager;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;

import org.primefaces.model.UploadedFile;

import persistence.ProdutoDao;
import entity.Produto;

@ManagedBean(name="mbProduto")
@RequestScoped
public class ManagerProduto {

	
	
	private Produto produto;
	private List<Produto> listaProd;
	
	private UploadedFile arquivo;
	
	public ManagerProduto() {
		
		produto =  new Produto();
	
	}


	public Produto getProduto() {
		return produto;
	}


	public void setProduto(Produto produto) {
		this.produto = produto;
	}


	public List<Produto> getListaProd() {

		listaProd = new ArrayList<Produto>();

		listaProd = new ProdutoDao().findAll();
		return listaProd;
	}


	public void setListaProd(List<Produto> listaProd) {
		this.listaProd = listaProd;
	}
	
	public void salvar(){
		
		
		FacesContext fc = FacesContext.getCurrentInstance();
		String msg = "";
		
		try {
			
			 byte arq[] =	arquivo.getContents();
				
			   
			   ServletContext context = (ServletContext)fc.getExternalContext().getContext();
			   
			  
			   produto.setImagem(produto.getProduto() + ".jpg");
			   
			   String caminho = context.getRealPath("/image");
			   
			   
			   FileOutputStream fos = new FileOutputStream(caminho + "/" + produto.getImagem());
			   
			   fos.write(arq);
			   fos.close();
			
			
			
			new ProdutoDao().create(produto);
			msg="produto cadastrado com sucesso";
			
			
		} catch (Exception e) {
			msg="Erro: " +e.getMessage();
			e.printStackTrace();
		}
		
		fc.addMessage("accordion:form1", new FacesMessage(msg));
	}

public void excluir(){
		
		FacesContext fc = FacesContext.getCurrentInstance();
		String msg=  "";
		
		
		try {
			
			new ProdutoDao().delete(produto);
			msg = "produto excluido com suscesso";
			
			
		} catch (Exception e) {
			msg="Erro: " +e.getMessage();
			e.printStackTrace();
		}
		
		fc.addMessage("accordion:form2", new FacesMessage(msg));
	}
	
	
	public UploadedFile getArquivo() {
		return arquivo;
	}


	


	
	
	
}
